#pragma once
#include "Define.h"
struct MSG_BASE;
class UserSession;
struct SOCKET_FD;
class Handler_CS
{
public:
	static void OnCS_SYSTEM_LOGIN_MOTD_SYN(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_CHAR_SELECT_SYN(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_UNI_CUBE_SYN(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void	OnCS_SHOP_LIST_SYN( SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize );
	static void	OnCS_CHAR_INFO_SYN( SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize );
	static void OnCS_SYSTEM_GAMEGUARD_PING(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_SYSTEM_DIALOG_SYN(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ITEM_DESCRIPTION_SYN(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_QUEST_MISSION_START_SYN(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_MOVEMENT_POSITION_CHANGE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_MOVEMENT_STAY_STILL(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHARACTER_0x01(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHARACTER_ANIMATION(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHARACTER_POSITION(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHARACTER_SIT(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHARACTER_OPERATE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_MOVEMENT_CAMERA_CHANGE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_MISSIONS_ENEMY_EVENT(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_MISSIONS_OBJECT_EVENT(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ITEM_RECEIVE_ITEM(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_QUEST_0x11(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ACCOUNT_SET_FLAG(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ZONE_VEHICLE_INIT(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ZONE_VEHICLE_ENTER(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ZONE_VEHICLE_RIGHT(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_PARTY_0x19(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_BOSS_0x06(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_BOSS_START_VIDEO(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AIRBOARD_ABOUT(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHARACTER_ITEM_OPERATE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHARACTER_SHOP_OPERATE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHARACTER_ENTER_AREA(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHARACTER_TRIGGERED(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_CHAR_SELECT_ENTER(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_KEY_AUTH_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_GAME_SERVER_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_LOGIN_PASSWORD_AUTH(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_SYSTEM_CHAR_LOAD_COMPLETE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_UNI_CUBE_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_UNI_CUBE_SELECT(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_MOTD_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_MOTD_ACCEPTED(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SYSTEM_MOTD_REQUEST_US(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_CHAT_MESSSAGE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_APPARENTLY_REPLIED(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_CHANGE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_0x08(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_NPC_FORCE_INVITE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_CHANGE_NOTICE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_CLIENT_VERSION_INFO(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_PARTY_RELATED_INFO(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_AREA_ENTER_COUNTER(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_LEAVE_COUNTER(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_NPC_INVITE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_MISSSION_CHANGE_NOTICE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_NO_MISSSION_CHANGE_NOTICE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_AREA_HARDWARE_INFO(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ITEM_DESCRIPTION_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_QUEST_MISSION_START(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_QUEST_MISSION_FILE_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_QUEST_LOBBY_TRANSPORT_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_QUEST_COUNTER_OPTION_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ACCOUNT_CHAR_CREATE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ACCOUNT_CHAR_SELECT_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ACCOUNT_OPTION_CHANGE(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_HIT_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ZONE_OBJECT_EVENT(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_PARTY_REMOVE_MEMBER_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_COUNTER_JOIN_PARTY_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_COUNTER_PARTY_INFO_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_COUNTER_MISSION_SELECT(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_COUNTER_PARTY_OPTION_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_COUNTER_BACKGROUND_LOCATION_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_COUNTER_OPTIONS_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_DIALOG_REQUEST(SOCKET_FD* lpSocketFD,MSG_BASE *pMsg, uint16 wSize);



	static void OnCS_CHAR_TRIGGER_EVENT_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_TYPES_CAPABILITY_LIST_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_UPDATE_CHAR_STATUS_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_REVIVE_PLAYER_SE_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ZONE_INIT_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHAR_STATUS_INFO_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CONNECT_HELLO_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SPAWN_PLAYER_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize); 
	static void OnCS_UNSPAWN_PLAYER_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_LOAD_NEW_MAP_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_LOAD_NEW_MAP_END_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_0x020C_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_QUEST_DATA_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_ZONE_DATA_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
    static void OonCS_SEND_CURRENT_UNIX_TIME(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_0x0215_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_GAMESERVER_IP_PORT_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_END_CHAR_LOADING(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_UNIVERSE_LIST_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_CURRENT_UNIVERSE_INFO_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_AUTH_KEY_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_MOTD_PAGE(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_NOTICE_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SPAWN_PLAYER_LIST_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_LOAD_ZONE_INFO_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize); 
	static void OnCS_CHAT_MESSAGE_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_WARPS_PLAYER_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_NPC_INVENTORY_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ITEMUUID_LIST_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_ITEM_DESCRIPTION(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_QUEST_INIT(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_SEND_QUEST_FILE_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_ALLOW_PLAYER_TRANSPORT_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_TRIAL_START_NOTIFICATION_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_MISSION_OPTION_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHAR_GENERAL_DATA_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_CHAR_LIST_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_FLAG_LIST_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_ADD_PARTY_MEMBER_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_PARTY_MEMBER_INFO_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_PARTY_RELATED_EVENT_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_CURRENT_LOCATION(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_CURRENT_LOCATION_EX(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_PARTY_LOCATION_INFO_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_MISSION_FILE_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize); 
	static void OnCS_0x1016_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_0x101a_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_MISSION_START_RELATED_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_UPDATE_PAERTY_MEMBER_HP(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_OBJECT_EVENT_RESPON_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_0x1211_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_LOAD_QUEST_PREVIOUSLY_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_KET_INFO_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_BOSS_GATE_SET_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
    static void OnCS_0x1216_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_PLAYER_PARTNER_CARD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_PARTNERCARD_LIST(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_BLOCK_LIST(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_PM_INFO(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);
	static void OnCS_SEND_PARTY_LIST_CMD(SOCKET_FD* lpSocketFD, MSG_BASE *pMsg, uint16 wSize);


};
